package com.soft.mainsite.module.staticstrategy.staticservice;

/**
 * 页面静态化接口
 *
 * @author liupengtao
 * @date 2019/04/29
 */
public interface StaticHtmlService {


    /**
     * 静态化首页
     * @param siteId 站点id
     * @param type 模板类型
     * @return
     * @throws Exception
     */
    String index(Integer siteId, String type) throws Exception;

    /**
     * 静态化重定向页面
     * @param siteId
     * @param type
     * @return
     * @throws Exception
     */
    String forward(Integer siteId, String type) throws Exception;


    /**
     * 静态化公共单页
     * @param siteId
     * @param tplName
     * @param tplType
     * @return
     * @throws Exception
     */
    String common(Integer siteId, String tplName, String tplType) throws Exception;

    /**
     * 栏目首页静态化方法
     * @param siteId
     * @param categoryId
     * @param type
     * @return
     * @throws Exception
     */
    String category(Integer siteId, Long categoryId,  String type) throws Exception;

    /**
     * 内容静态化
     * @param siteId 站点id
     * @param categoryId 栏目id
     * @param contentId 内容id
     * @param type 模板类型
     * @param isPub 是否公共
     * @return
     * @throws Exception
     */
    String content(Integer siteId, Long categoryId, Long contentId, String type, boolean isPub) throws Exception;


    /**
     * 公共栏目列表静态化
     * @param siteId 站点id
     * @param categoryId 栏目id
     * @param contentId 内容id
     * @param type 模板类型
     * @return
     * @throws Exception
     */
    String commonListStatic(Integer siteId, Long categoryId, Long contentId, String type) throws Exception;

    /**
     * 初始化公共栏目模板静态化
     * @param siteId 站点id
     * @param type 模板类型
     * @throws Exception
     */
    void initCommonPage(Integer siteId, String type) throws Exception;

    /**
     * 初始化单页
     * @param siteId 站点id
     * @param tplType
     * @throws Exception
     */
    void initSinglePage(Integer siteId, String tplType) throws Exception;

    /**
     * 初始化公共代码片段模板静态化
     * @param siteId 站点id
     * @param type 模板类型
     * @throws Exception
     */
    void initCommonFragent(Integer siteId, String type) throws Exception;

    /**
     * 根据栏目id触发静态化
     * @param siteId 站点id
     * @param categoryId 栏目id
     * @param contentId 内容id
     * @param type 模板类型
     * @param isPub
     * @throws Exception
     */
    void triggerStatic(Integer siteId, Long categoryId, Long contentId, String type, boolean isPub) throws Exception;

    /**
     * 根据模板名称触发静态化
     * @param siteId 站点id
     * @param tplName 模板名称
     * @param type 模板类型
     * @param isPub
     * @throws Exception
     */
    void triggerStatic(Integer siteId, String tplName, String type, boolean isPub) throws Exception;

    /**
     * 删除静态页面
     * @param ids
     * @throws Exception
     */
    void clearStaticHtml(Long[] ids) throws Exception;

}
